class ListNode:
    def __init__(self, x):
        self.val = x
        self.next = None


# 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
# @param head ListNode类 
# @return ListNode类
class Solution:
    def ReverseList(self , head: ListNode) -> ListNode:
        """
        思路：
        需要两个变量分别表示前一个节点和当前节点
        1.保留下当前节点的下个节点(nextnode = cur.nextnode)
        2.将当前节点指向前一个节点(cur.nextnode = pre)
        3.将当前节点变成pre(pre=cur)
        4.将下个节点变成当前节点(cur=nextnode)
        如此循环直至最后一个节点,cur被赋值为None时退出
        """
        if not head:
            return 

        pre = None
        cur = head
        while cur:
            nextnode = cur.next
            cur.next = pre
            pre = cur
            cur = nextnode
        return pre

